<?php
/**
 * Created by JetBrains PhpStorm.
 * User: Serenity
 * Date: 20-6-11
 * Time: 10:40
 * To change this template use File | Settings | File Templates.
 */

require_once(Config::acquire('Model', null, 'model'));


class Licentie extends Model
{

    /**
     * initialiseren variabelen
     */
    private $id;
    private $omschrijving;
    private $aantal;
    private $type;
    private $gebruiker;


     /**
     * aanmaken van de vriabelen
     */
    public function __construct($id, $omschrijving, $aantal, $type, $gebruiker)
    {
        $this->id = $id;
        $this->omschrijving = $omschrijving;
        $this->aantal = $aantal;
        $this->type = $type;
        $this->gebruiker = $gebruiker;

    }


    /**
     * Query voor deleten van de gegevens uit de gegeven tabel
     */
    public function delete()
    {
        SQL::execute("DELETE FROM `licentie` WHERE `Licentie_ID` = {$this->id}");
    }

      /**
     * gegevens naar een array schrijven.
     */
    public function toArray()
    {
        return array(
            "ID" => $this->id,
            "Omschrijving" => $this->omschrijving,
            "Aantal" => $this->aantal,
            "Type" => $this->type,
            "Gebruikers" => $this->gebruiker,

        );
    }

     /**
     * Query voor het updaten van de betreffende tabel
     */
    public function update()
    {
        if (!is_null($this->id)) {
            SQL::execute("UPDATE `licentie`
                      SET `Licentie_Omschrijving`  = '{$this->omschrijving}',
                          `Licentie_Aantal` = '{$this->aantal}',
                          `Licentie_Type` = '{$this->type}',
                          `Licentie_Gebruikers` = '{$this->gebruiker}'
                      WHERE `Licentie_ID` ={$this->id}");
        } else {
            SQL::execute("INSERT INTO `licentie` (
                    `Licentie_ID`,
                    `Licentie_Omschrijving`,
                    `Licentie_Aantal`,
                    `Licentie_Type`,
                    `Licentie_Gebruikers`)
                VALUES (NULL,
                        '{$this->omschrijving}',
                         '{$this->aantal}',
                          '{$this->type}',
                           '{$this->gebruiker}')");
         }
    }

      /**
     * aanmaken van een nieuw item
     */
    public static function create($id, $omschrijving, $aantal, $type, $gebruiker)
    {
            return new Licentie($id, $omschrijving, $aantal, $type, $gebruiker);
    }


    /*
     * lezen van de gegvens van 1 enkel item
     */
    public static function read($id)
    {
        $licentie = SQL::query("SELECT * FROM `licentie` WHERE `Licentie_ID` =$id");

        if ($licentie->isValid()) {
            return Licentie::create(
                $licentie->fetchField('Licentie_ID'),
                $licentie->fetchField('Licentie_Omschrijving'),
                $licentie->fetchField('Licentie_Aantal'),
                $licentie->fetchField('Licentie_Type'),
                $licentie->fetchField('Licentie_Gebruikers'));

        } else {
            return null;
        }
    }


    /**
     * Lezen van de gegevens in een tabel
     */
    public static function readAll()
    {
        $list = array();
        $licentie = SQL::query("SELECT * FROM `licentie` ORDER BY `Licentie_ID`");
        while ($licentie->isValid()) {
            $list[] =Licentie::create(
                $licentie->fetchField('Licentie_ID'),
                $licentie->fetchField('Licentie_Omschrijving'),
                $licentie->fetchField('Licentie_Aantal'),
                $licentie->fetchField('Licentie_Type'),
                $licentie->fetchField('Licentie_Gebruikers'));

            $licentie->next();
        }
        return $list;
    }

    /**
     * Setters & getters
     */
    public function setAantal($aantal) {
        $this->aantal = $aantal;
    }

    public function getAantal() {
        return $this->aantal;
    }

    public function setGebruiker($gebruiker) {
        $this->gebruiker = $gebruiker;
    }

    public function getGebruiker() {
        return $this->gebruiker;
    }

    public function setId($id) {
        $this->id = $id;
    }

    public function getID() {
        return $this->id;
    }

    public function setOmschrijving($omschrijving) {
        $this->omschrijving = $omschrijving;
    }

    public function getOmschrijving() {
        return $this->omschrijving;
    }

    public function setType($type) {
        $this->type = $type;
    }

    public function getType() {
        return $this->type;
    }


}
